package org.nfIt.th06;

import java.util.ArrayList;
import java.util.List;

/**
 * ClossName:MainTest
 * Pakage:org.nfIt.th06
 * Description
 *
 * @Author L
 * @Create 2024/5/19 15:56
 * @Version 2023.1.3
 * 通配符下限
 */
public class MainTest2 {
    public static void main(String[] args) {
        List<Animal> animalList = new ArrayList<>();
        List<Cat> catList = new ArrayList<>();
        List<MiniCat> miniCatList = new ArrayList<>();

        show(animalList);
        show(catList);
        //不可以传子类类型
//        show(miniCatList);
    }

    /**
     * show(List<? extends Cat> list) : 设置了泛型下限通配符, 上限为 Animal和 Cat的本身,不可以传子类类型
     * 1）泛型上限不能填充元素
     * @param list
     */
    public static void show(List<? super Cat> list){
        //泛型下限能填充元素
        list.add(new Cat());
        list.add(new MiniCat());
        list.forEach(System.out::println);
    }
}
